The present invention relates to a semiconductor storage device (memory) for inputting/outputting data through a common terminal and outputting data in synchronism with clock or, in particular, to a synchronous dynamic random access memory (SDRAM), comprising a plurality of banks of memory cells, for performing an internal operation in synchronism with the clock generated from an external clock source and outputting data in synchronism with the clock.
A DRAM with a high-speed page mode is used as a main memory for the computer. Various DRAMs intended for higher speed have been proposed. An asynchronous DRAM, for example, includes an EDO (extended data out) mode or a burst EDO mode improved from the high-speed page mode, while a synchronous DRAM includes a SDRAM. The invention relates to a synchronous memory, or in particular to a SDRAM. An explanation will be given below with reference to the SDRAM.
FIG. 1 is a block diagram showing a general configuration of a SDRAM. As shown in FIG. 1, a DRAM core having an array of memory cells is configured with four banks 11-0 to 11-3. This configuration with a plurality of banks is intended to improve the data transfer rate by employing a method called interleaving for accessing the banks on rotation. A clock buffer 21 generates an internal clock clkz in response to an external clock, and supplies the internal clock to various parts. Each part operates in synchronism with the internal clock clkz. A command decoder 22 generates a signal used for internal control from the external control signals such as a chip select signal (/CS), /RAS, /CAS, /WE supplied from an external source. An address buffer 23 is a circuit for receiving an address signal Add input from an external source. A bank select circuit 24 is for generating a bank select signal bnk#z from a portion of the address signal Add. A control signal generating circuit 25 generates a control signal applied to the banks based on the control signal from the command decoder 22 and the bank select signal bnk#z. The SDRAM has various operation modes, one of which is designated by the address signal under a predetermined state of the external control signal. A mode register 26 stores this address signal and outputs a signal indicating a mode. A row address constituting a part of the address signal is supplied directly as a row address of the bank. In the SDRAM, a predetermined number of words (burst length) are continuously read from a given address. Column address counters 27, 28 receive the remaining column addresses of the address signal, generate continuous column addresses at high speed and supply them as the column addresses of the bank at the time of the read operation according to the prevailing mode. A burst length control circuit 29 performs the control operation for reading the data of burst length continuously in burst mode. A latency control circuit 30 is for controlling the /CAS latency (CL). CL is the number of clocks from the input of /CAS to the time when the first data is read, and can be designated in the SDRAM. The latency control circuit 30 performs the control operation for starting the data output with a designated CL.
A column bank status signal generating circuit 31 generates a column bank status signal cras#z indicating whether the column signal is activated or not based on the internal activation signal actpz generated by a command decoder 22 and the bank select signal bnk#z (# indicates the bank number as in the following description). A read status signal generating circuit 32, on the other hand, generates a read status signal readz in accordance with the latency signal lq#z which is in turn generated in accordance with the burst length and CL. A column activation signal generating circuit 33 generates an output period signal csex indicating the period during which an output clock outpz is generated from the signals cras#z and readz. An output clock buffer 34 generates an output clock outpz from the signal csex and the clock CLK input from an external source. A FIFO 35 is a part for temporarily holding the data read from the banks, and an output circuit 36 sequentially outputs the data held in the FIFO 35, in accordance with the output clock outpz. An output DQ is output to the same terminal by way of which the write data is input, and therefore the output of the output circuit 36 assumes a high impedance (Hi-Z) status upon complete output of the data.
A general configuration of the SDRAM was described above. The configuration will not be described in more detail, except for the parts related to the invention which include the column banks status signal generating circuit 31, the read status signal generating circuit 32, the column activation signal generating circuit 33, the output clock buffer 34, the FIFO 35 and the output circuit 36, and which will be described below with reference to the drawings.
FIG. 2 is a circuit diagram showing the column bank status generating circuit 31. As described above, the signal actpz is an internal activation signal generated by the command decoder 22, the signal bnk#z is a bank select signal, the signal apre#x is a signal related to an auto precharge command, and the signal dacpz is called a PRE and PALL command signal which is used for the reset operation with the signal a10z. The column bank status signal cras#z output from this circuit is activated by receiving the signals actpz and bnk#z and continues to be output during the bank active period. In the case of a command with auto precharge, a pulse for reducing the signal apre#x to a "low" state is output upon complete reading of a burst, by an interrupt of the burst or an interrupt by accessing other banks. Then, the latch is inverted for resetting.
When interrupted by a write command into a different bank in the read operation with a precharge, though a command input not permitted, the signal apre#x becomes "low" and so does the signal cras#z. At the same time, the signals cras#z of other banks also become "low".
FIG. 3 is a circuit diagram of the read status signal generating circuit 32, and FIG. 4 is a time chart showing the operation of the same circuit. A signal cmcpz is a clock for columns, a signal sttx is for resetting the device at the time of starting, and a signal wrtcz becomes "high" when the write command is input. Only the signal lq0z is output when CL is 2, and the signals lq0z and lq1z are output when CL is 3. The signals lq0z, lq1z have a period "high" as long as the burst length, and the rise timing thereof corresponds to the CL, respectively. When CL is 2, the read status signal readz output becomes "high" in response to the rise of the signal lq0z, which is delayed by one clock in a D-type flip-flop 40, and the signal readz becomes "low" with the fall of the signal lq0z. When CL is 3, on the other hand, the signal readz becomes "high" in response to the rise of the signal lq0z, and the signal lq1z is delayed by one clock in the D-type flip-flop 40, so that the signal readz becomes "low" with the fall thereof. Thus, the read status signal readz is a signal indicating a period longer by one clock than the data output period.
FIG. 5 is a diagram showing a circuit configuration of the FIFO circuit 35. In the SDRAM, data are read by pipelining, while the data are output in synchronism with the clock. For this purpose, the FIFO circuit 35, in which the data read out from the banks are temporarily stored and data are read out in the order of storage in synchronism with the clock, is provided. The signal rdrv#z designates a read data bus drive signal, and the signal ird#x/z is a read data. An input pointer counter 41 resets all the input pointers to "low" and the counter to 0 when the read status signal readz is "low". When the signal readz is "high", on the other hand, the pointer is enabled. The output pointer counter 42, on the other hand, is reset to 0 when the signal readz is "low", and when the signal readz becomes "high", the counter is enabled, so that the count changes with the trailing edge of the output clock outpz as a trigger. The output pointer signal generating circuit 43 is a select signal generating circuit for the data latched in a data latch 45, and outputs a signal po#z in accordance with the signal poen#z output from the output pointer counter 42. The data mask is also controlled by this output pointer signal generating circuit 43. The data reset circuit 44 resets the data latched in the data latch 45. When the signal readz is "high", the data reset circuit is enabled. The data latch circuit is the one for the FIFO. The read data ird#x/z is input to the latch circuit selected by the pointer signal pi#z. Upon complete drive of the read data ird#x/z, the pointer is switched, and the next data is input to the next latch circuit. Upon complete output of the data latched in the latch circuit, the data reset signal drst#x resets the latch circuit. The output control circuit 46 transfers the data dl#x/z selected by the output pointer signal po#z to the output circuit 36 while the output clock outpz is "high".
With the configuration described above, the FIFO circuit 35 temporarily stores the data read out of the banks and sequentially outputs them. Upon complete data output, a high impedance signal is output such that the output of the output circuit 36 assumes a high impedance (Hi-Z).
FIG. 6 is a circuit diagram of the column activation signal generating circuit 33. As shown in FIG. 6, this circuit outputs a column activation signal csex which is valid while the column bank status signal cras#z or the read status signal readz are active. Thus, the signal csex is validated earlier than the signal readz and invalidated at the same time as the signal readz. Specifically, the signal csex is validated earlier than the data output period, and invalidated one clock cycle after the end of the data output period.
FIG. 7 is a circuit diagram of the output clock buffer circuit 34. This circuit generates an output clock outpz from the clock CLK input from an external source, while the column activation signal csex remains valid. Thus, the output clock outpz is generated earlier than the data output period, and outputs one extra pulse after the end of the data output period.
FIG. 8 is a circuit diagram of the output circuit 36. The output from the FIFO circuit 35 is output as two sets of complementary signals pue00z, pue00x and pde00z, pde00x. In the case where the output data DQ becomes "high", for example, the signals pue00z, pde00z are "high" while the signals pue00x, pde00x are "low". In the case where the output data DQ is "low", on the other hand, the signals pue00z, pde00z are "low" while the signals pue00x, pde00x are "high". Further, the impedance of the output data DQ is increased, i.e. the high impedance data is obtained in the case where the signals pde00z, pue00x are "high" while the signals pue00z, pde00x are "low". The output data or the high impedance data are set as the signals pue00z, pue00x and the signals pde00z, pde00x, respectively. With two flip-flops thus assuming the state corresponding to each other, the status of the output DQ is changed in accordance with the leading edge of the output clock outpz, and the status of the output DQ is determined in accordance with the trailing edge of the signal outpz. Thus, even in the case where the signals pue00z, pue00x and pde00z, pde00x are set, the status of the output DQ remains unchanged unless the signal outpz is input.
As described above, the output clock outpz is generated earlier than the data output period, and at the end of the data output period, one extra pulse is output. If the high impedance data is output after all the output data are produced from the FIFO circuit 35, therefore, the output DQ assumes a high impedance. The FIFO circuit 35 continues to output the high impedance data until the next data output. Even in the case where the data output clock outpz is generated after the end of the data output, therefore, the output DQ of the output circuit 36 is maintained in high impedance state. If the output clock is produced during the time when no output is produced, however, the current consumption increases correspondingly. For this reason, as described above, the output clock outpz is not generated after an extra pulse following the end of the data output period.
In the configuration described above, the output DQ is adapted to assume a high impedance after the end of the data output, and operates normally without any problem. The specification of the SDRAM is so determined that in the case where the data is written after being read in burst mode, the external control signal is set in predetermined state while inputting the write data after the output DQ becomes a high impedance. Thus, the inputting of a write command immediately after the read operation is prohibited.
As long as the power condition is unstable such as at the time of turning power on, however, it may be determined by the command decoder 22 that the write command is input immediately after the read operation. Also, in spite of the specification described above, such a command may be input by error. In such a case, if the destination of the write operation is a different bank, the generation of the output clock is stopped, leading to the problem that the output DQ fails to assume a high impedance. FIG. 9 is a diagram for explaining this problem.
The bank 0 is activated, and the signal cras0z rises, while the column activation signal csex falls to "low". Correspondingly, the generation of the output clock outpz is started. After that, the column address counter for the read operation with auto precharge is operated and the read status signal readz rises to "high" and becomes valid. If a write command to the bank 3 occurs before the end of the read operation, all the column bank status signals cras#z also fall to "low" due to the auto precharge. Also, since the write command is input, the read status signal readz falls to "low" and is deactivated. As a result, the column activation signal csex becomes "high". With the data output, the generation of the output clock is stopped, so that the output DQ is not restored to high impedance, thus maintaining the state in which the data is output.
In the normal system, the device is initialized by inputting a reset command after turning power on. Even this process cannot restore the device output to high impedance state and the problem is posed that the system cannot be operated normally.